package com.hyh.db;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import com.hyh.bean.AdminInfoBean;


/**根据业务需求在基类的基础之上扩展数据库处理操作
 * @author hasee
 *
 */
public class DBProvider extends BasicProvide {
   
	
	/**
	 * 查询操作
	 * @param strSql   sql语句
	 * @param rsh      结果集类型
	 * @param params   变长参数列表
	 * @return    查询结果集
	 */
	public <T>T  query(String strSql,ResultSetHandler<T> rsh,Object... params){
		//返回结果集 
		T t = null;
		try {
			//测试数据库链接是否正常
			//创建一个queryrunner类--等价于jdbc的statement查询器
			QueryRunner qr = new QueryRunner(DBCPDataSource.getDataSource(),true); //第二个参数是支持sql语句中的占位符
			
			//进行 查询操作
			 t= qr.query(strSql,rsh,params);
		    //遍历查询结果
			
		} catch (Exception e) {
			// 查询操作异常
			System.out.println("查询操作异常："+e.getMessage());
			e.printStackTrace();
		}
		//返回值
		return t;
	}
	
	public int  updata(String strSql,Object... params){
		//返回结果 
		int i = 0;
		try {
			//测试数据库链接是否正常
			//创建一个queryrunner类--等价于jdbc的statement查询器
			QueryRunner qr = new QueryRunner(DBCPDataSource.getDataSource(),true); //第二个参数是支持sql语句中的占位符
			
			//进行修改、新增、删除操作
			 i= qr.update(strSql, params);
		    //遍历查询结果
			
		} catch (Exception e) {
			// 查询操作异常
			System.out.println("查询操作异常："+e.getMessage());
			e.printStackTrace();
		}
		//返回值
		return i;
	}
	
}
